home *** CD-ROM | disk | FTP | other *** search
/ Aminet 22 / Aminet 22 (1997)(GTI - Schatztruhe)[!][Dec 1997].iso / Aminet / util / libs / Identify.lha / Identify / identify.doc < prev    next >
Text File  |  1997-07-31  |  19KB  |  531 lines

  1. TABLE OF CONTENTS
  2.  
  3. identify.library/IdAlert
  4. identify.library/IdExpansion
  5. identify.library/IdFunction
  6. identify.library/IdHardware
  7. identify.library/IdHardwareNum
  8.  
  9. identify.library/IdAlert                              identify.library/IdAlert
  10.  
  11.    NAME
  12.         IdAlert - get description of an alert (V3)
  13.  
  14.    SYNOPSIS
  15.         Error = IdAlert(Code,TagList)
  16.         D0.l            D0.l   A0.l
  17.  
  18.         LONG IdAlert(ULONG, struct TagItem *);
  19.  
  20.         Error = IdAlertTags(Code,Tag1,...)
  21.  
  22.         LONG IdAlertTags(ULONG, ULONG,...);
  23.  
  24.    FUNCTION
  25.         Get a human readable description of the alert ('Guru') code.
  26.  
  27.    INPUTS
  28.         Code          -- (ULONG) alert code, as defined in exec/alerts.h
  29.  
  30.         TagList       -- (struct TagItem *) tags that describe further
  31.                          options:
  32.  
  33.                 IDTAG_DeadStr   -- (STRPTR) Alert type string (deadend
  34.                         or recoverable). You may skip this tag if you
  35.                         do not want to get the string.
  36.                 IDTAG_SubsysStr -- (STRPTR) String of the subsystem
  37.                         that caused the alert (CPU, exec.library, ...).
  38.                         You may skip this tag if you do not want to
  39.                         get the string.
  40.                 IDTAG_GeneralStr -- (STRPTR) General alert cause. You
  41.                         may skip this tag if you do not want to get
  42.                         the string.
  43.                 IDTAG_SpecStr   -- (STRPTR) Specified alert cause. You
  44.                         may skip this tag if you do not want to get
  45.                         the string.
  46.                 IDTAG_StrLength -- (UWORD) Maximum length of the
  47.                         string buffer, including termination. Defaults
  48.                         to 50.
  49.  
  50.    RESULT
  51.         Error         -- (LONG) error code, or 0 if everything went fine.
  52.  
  53.    NOTE
  54.         This call is guaranteed to preserve all registers except D0.
  55.  
  56.    BUGS
  57.  
  58.    SEE ALSO
  59.  
  60. identify.library/IdExpansion                      identify.library/IdExpansion
  61.  
  62.    NAME
  63.         IdExpansion - get name of expansion board (V3)
  64.  
  65.    SYNOPSIS
  66.         Error = IdExpansion(TagList)
  67.         D0.l                  A0.l
  68.  
  69.         LONG IdExpansion(struct TagItem *);
  70.  
  71.         Error = IdExpansionTags(Tag1,...)
  72.  
  73.         LONG IdExpansionTags(ULONG,...);
  74.  
  75.    FUNCTION
  76.         Gets the name and class of the expansion and it's manufacturer.
  77.  
  78.    INPUTS
  79.         TagList       -- (struct TagItem *) tags that describe further
  80.                          options:
  81.  
  82.                 IDTAG_ConfigDev -- (struct ConfigDev *) ConfigDev
  83.                         structure containing all information. You
  84.                         should use this tag if ever possible, since
  85.                         there are more possibilities to recognize and
  86.                         distinguish between a board.
  87.                 IDTAG_ManufID   -- (UWORD) Manufacturer ID if ConfigDev
  88.                         is not provided. You also have to provide
  89.                         IDTAG_ProdID!
  90.                 IDTAG_ProdID    -- (UBYTE) Product ID if ConfigDev
  91.                         is not provided. You also have to provide
  92.                         IDTAG_ManufID!
  93.                 IDTAG_ManufStr  -- (STRPTR) Pointer to a buffer space
  94.                         for the manufacturer name. You may skip this
  95.                         tag if you do not want to get this string.
  96.                 IDTAG_ProdStr   -- (STRPTR) Pointer to a buffer space
  97.                         for the product name. You may skip this tag if
  98.                         you do not want to get this string.
  99.                 IDTAG_ClassStr  -- (STRPTR) Pointer to a buffer space
  100.                         for the product class. You may skip this tag if
  101.                         you do not want to get this string.
  102.                 IDTAG_StrLength -- (UWORD) Buffer length, including
  103.                         termination. Defaults to 50.
  104.                 IDTAG_Expansion -- [V6] (struct ConfigDev **) Use this
  105.                         tag to easily traverse through the expansion
  106.                         board list. Init the pointed variable with NULL.
  107.                         After each call, you will find the current
  108.                         ConfigDev pointer in this variable. If you are
  109.                         done, this function returns IDERR_DONE and the
  110.                         variable is set to NULL. See example.
  111.                 IDTAG_Secondary -- [V7] (BOOL) If set to TRUE, identify
  112.                         will warn about secondary expansions. E.g. some
  113.                         graphic boards create more than one entry in the
  114.                         expansion list. Then, one entry is the primary
  115.                         entry, and any additional are secondary. This tag
  116.                         does only make sense when checking all mounted
  117.                         expansions. Defaults to FALSE.
  118.  
  119.    RESULT
  120.         Error         -- (LONG) error code, or 0 if everything went fine.
  121.  
  122.                 IDERR_NOLENGTH  -- IDTAG_StrLength has been set to 0!
  123.                 IDERR_BADID     -- IDTAG_ManufID and IDTAG_ProdID were
  124.                         out of range or one of them was missing.
  125.                 IDERR_DONE      -- Checked all expansions using the
  126.                         IDTAG_Expansion tag. This is not really an error.
  127.                 IDERR_SECONDARY -- This expansion is secondary to a primary
  128.                         expansion entry.
  129.  
  130.    EXAMPLE
  131.         To check all expansion boards, you may use this code:
  132.  
  133.         void PrintExpansions(void)
  134.         {
  135.           struct ConfigDev *expans = NULL;
  136.           char manuf[IDENTIFYBUFLEN];
  137.           char prod[IDENTIFYBUFLEN];
  138.           char pclass[IDENTIFYBUFLEN];
  139.  
  140.           while(!IdExpansionTags(
  141.                   IDTAG_ManufStr ,manuf,
  142.                   IDTAG_ProdStr  ,prod,
  143.                   IDTAG_ClassStr ,pclass,
  144.                   IDTAG_Expansion,&expans,
  145.                   TAG_DONE))
  146.           {
  147.             Printf("Current ConfigDev = 0x%08lx\n",expans);
  148.             Printf("  Manufacturer    = %s\n",manuf);
  149.             Printf("  Product         = %s\n",prod);
  150.             Printf("  Expansion class = %s\n\n",class);
  151.           }
  152.         }
  153.  
  154.    NOTE
  155.         If the manufacturer or the product is not known, the string will be
  156.         filled with its number.
  157.  
  158.         This call is guaranteed to preserve all registers except D0.
  159.  
  160.    BUGS
  161.         You must also provide IDTAG_ProdStr if you want to use IDTAG_Secondary.
  162.  
  163.         There are by far not all existing boards implemented. Please send
  164.         the manufacturer id and name and the products id, name and class
  165.         of all unknown boards to me. My E-Mail: "shred@chessy.aworld.de".
  166.  
  167.    SEE ALSO
  168.  
  169. identify.library/IdFunction                        identify.library/IdFunction
  170.  
  171.    NAME
  172.         IdFunction - identify function name by offset (V4)
  173.  
  174.    SYNOPSIS
  175.         Error = IdFunction(LibName,Offset,TagList)
  176.         D0.l                A0.l    D0.l   A1.l
  177.  
  178.         LONG IdFunction(STRPTR, LONG, struct TagItem *);
  179.  
  180.         Error = IdFunctionTags(LibName,Offset,Tag1,...)
  181.  
  182.         LONG IdFunctionTags(STRPTR, LONG, ULONG,...);
  183.  
  184.    FUNCTION
  185.         Decodes the offset of the provided library name into function name.
  186.  
  187.         This function requires the .fd files in a drawer with 'FD:' assigned
  188.         to it. All files must have the standard file name format, e.g.
  189.         'exec_lib.fd'.
  190.  
  191.         The appropriate .fd file will be scanned. The result will be
  192.         cached until the identify.library is removed from system.
  193.  
  194.    INPUTS
  195.         LibName       -- (STRPTR) name of the function's library, device
  196.                         or resource. All letters behind the point (and
  197.                         the point itself) are optional. The name is
  198.                         case sensitive.
  199.  
  200.                         Examples: 'exec.library', 'dos', 'cia.resource'.
  201.  
  202.         Offset        -- (LONG) offset of the function. It must be a
  203.                         multiple of 6. You do not need to provide the
  204.                         minus sign.
  205.  
  206.                         Examples: -456, 60
  207.  
  208.         TagList       -- (struct TagItem *) tags that describe further
  209.                         options:
  210.  
  211.                 IDTAG_FuncNameStr -- (STRPTR) Buffer where the function
  212.                         name will be copied into.
  213.  
  214.                 IDTAG_StrLength -- (UWORD) Maximum length of the
  215.                         string buffer, including termination. Defaults
  216.                         to 50.
  217.  
  218.    RESULT
  219.         Error         -- (LONG) error code, or 0 if everything went fine.
  220.  
  221.    NOTE
  222.         This call is guaranteed to preserve all registers except D0.
  223.  
  224.    BUGS
  225.         Every line in the .fd file must have a maximum of 98 characters.
  226.         Otherwise the internal offset table may be corrupted (but the
  227.         system won't be harmed). Anyhow, this should be no problem.
  228.  
  229.    SEE ALSO
  230.  
  231. identify.library/IdHardware                        identify.library/IdHardware
  232.    NAME
  233.         IdHardware - get information about the system, string (V3)
  234.  
  235.    SYNOPSIS
  236.         String = IdHardware(Type,TagList)
  237.          D0.l               D0.l   A0.l
  238.  
  239.         STRPTR IdHardware(ULONG, struct TagItem *);
  240.  
  241.         String = IdHardwareTags(Type,Tag1,...)
  242.  
  243.         STRPTR IdHardwareTags(ULONG, ULONG,...);
  244.  
  245.    FUNCTION
  246.         Gets information about the current system environment. The result
  247.         is returned as read only string. This function is fully DraCo
  248.         compatible!
  249.  
  250.    INPUTS
  251.         Type          -- (ULONG) Information type. These types are known:
  252.  
  253.                 IDHW_SYSTEM     -- What system is used?
  254.                         (e. g. "Amiga 4000")
  255.  
  256.                 IDHW_CPU        -- What kind of CPU is available?
  257.                         (e. g. "68060")
  258.  
  259.                 IDHW_FPU        -- What kind of FPU is available?
  260.                         (e. g. "68060")
  261.  
  262.                 IDHW_MMU        -- What kind of MMU is available?
  263.                         (e. g. "68060")
  264.  
  265.                 IDHW_OSVER      -- What OS version is used?
  266.                         (e.g. "V39.106")
  267.  
  268.                 IDHW_EXECVER    -- What exec version is used?
  269.                         (e.g. "V39.47")
  270.  
  271.                 IDHW_WBVER      -- What WorkBench version is used?
  272.                         (e.g. "V39.29")
  273.  
  274.                 IDHW_ROMSIZE    -- Size of AmigaOS ROM
  275.                         (e.g. "512KB")
  276.  
  277.                 IDHW_CHIPSET    -- What Chipset is available?
  278.                         (e.g. "AGA")
  279.  
  280.                 IDHW_GFXSYS     -- What Graphic OS is used?
  281.                         (e.g. "CyberGraphX")
  282.  
  283.                 IDHW_CHIPRAM    -- Size of complete Chip RAM
  284.                         (e.g. "~2.0MB")
  285.  
  286.                 IDHW_FASTRAM    -- Size of complete Fast RAM
  287.                         (e.g. "12.0MB")
  288.  
  289.                 IDHW_RAM        -- Size of complete System RAM
  290.                         (e.g. "~14.0MB")
  291.  
  292.                 IDHW_SETPATCHVER -- [V4] Version of current SetPatch
  293.                         (e.g. "V40.14")
  294.  
  295.                 IDHW_AUDIOSYS   -- [V5] What Audio OS is used?
  296.                         (e.g. "AHI")
  297.  
  298.                 IDHW_OSNR       -- [V5] What AmigaOS is used?
  299.                         (e.g. "3.1")
  300.  
  301.                 IDHW_VMMCHIPRAM -- [V5] Size of virtual Chip RAM
  302.                         (e.g. "0")
  303.  
  304.                 IDHW_VMMFASTRAM -- [V5] Size of virtual Fast RAM
  305.                         (e.g. "40.0MB")
  306.  
  307.                 IDHW_VMMRAM     -- [V5] Size of total virtual RAM
  308.                         (e.g. "40.0MB")
  309.  
  310.                 IDHW_PLNCHIPRAM -- [V5] Size of non-virtual Chip RAM
  311.                         (e.g. "2.0MB")
  312.  
  313.                 IDHW_PLNFASTRAM -- [V5] Size of non-virtual Fast RAM
  314.                         (e.g. "12.0MB")
  315.  
  316.                 IDHW_PLNRAM     -- [V5] Size of total non-virtual RAM
  317.                         (e.g. "14.0MB")
  318.  
  319.                 IDHW_VBR        -- [V6] Vector Base Register contents
  320.                         (e.g. "0x0806C848")
  321.  
  322.                 IDHW_LASTALERT  -- [V6] Last Alert code
  323.                         (e.g. "80000003")
  324.  
  325.                 IDHW_VBLANKFREQ -- [V6] VBlank frequency (see execbase.h)
  326.                         (e.g. "50 Hz")
  327.  
  328.                 IDHW_POWERFREQ  -- [V6] Power supply frequency (see execbase.h)
  329.                         (e.g. "50 Hz")
  330.  
  331.                 IDHW_ECLOCK     -- [V6] System E clock frequency
  332.                         (e.g. "709379 Hz")
  333.  
  334.                 IDHW_SLOWRAM    -- [V6] A500/A2000 "Slow" RAM expansion
  335.                         (e.g. "512.0KB")
  336.  
  337.                 IDHW_GARY       -- [V6] GARY revision
  338.                         (e.g. "Normal")
  339.  
  340.                 IDHW_RAMSEY     -- [V6] RAMSEY revision
  341.                         (e.g. "F")
  342.  
  343.                 IDHW_BATTCLOCK  -- [V6] Battery backed up clock present?
  344.                         (e.g. "Found")
  345.  
  346.                 IDHW_CHUNKYPLANAR -- [V7] Chunky to planar hardware present?
  347.                         (e.g. "Found")
  348.  
  349.                 IDHW_POWERPC    -- [V7] PowerPC CPU present?
  350.                         (e.g. "603e")
  351.  
  352.                 IDHW_PPCCLOCK   -- [V7] PowerPC processor clock
  353.                         (e.g. "200MHz")
  354.  
  355.         TagList       -- (struct TagItem *) tags that describe further
  356.                          options. Currently, there are none. You may
  357.                          provide NULL.
  358.  
  359.    RESULT
  360.         String        -- (STRPTR) String containing the desired
  361.                 information, or NULL if not available. Note that
  362.                 all strings are READ ONLY!
  363.  
  364.    NOTE
  365.         This call is guaranteed to preserve all registers except D0.
  366.  
  367.    BUGS
  368.         Identify ignores any changes to the base of the upper values
  369.         (e.g. if Virtual Memory is added after startup of identify).
  370.         Workaround: remove identify from memory (e.g. avail flush).
  371.  
  372.    SEE ALSO
  373.         IdHardwareNum()
  374.  
  375. identify.library/IdHardwareNum                  identify.library/IdHardwareNum
  376.    NAME
  377.         IdHardwareNum - get information about the system, numerical (V6)
  378.  
  379.    SYNOPSIS
  380.         Result = IdHardwareNum(Type,TagList)
  381.          D0.l                  D0.l   A0.l
  382.  
  383.         ULONG IdHardwareNum(ULONG, struct TagItem *);
  384.  
  385.         Result = IdHardwareNumTags(Type,Tag1,...)
  386.  
  387.         ULONG IdHardwareNumTags(ULONG, ULONG,...);
  388.  
  389.    FUNCTION
  390.         Gets information about the current system environment. The result
  391.         is returned numerical. This function is fully DraCo compatible!
  392.  
  393.    INPUTS
  394.         Type          -- (ULONG) Information type. These types are known
  395.                 (see include file and NOTE for detailed description):
  396.  
  397.                 IDHW_SYSTEM     -- What system is used?
  398.                         (include file: IDSYS_...)
  399.  
  400.                 IDHW_CPU        -- What kind of CPU is available?
  401.                         (include file: IDCPU_...)
  402.  
  403.                 IDHW_FPU        -- What kind of FPU is available?
  404.                         (include file: IDFPU_...)
  405.  
  406.                 IDHW_MMU        -- What kind of MMU is available?
  407.                         (include file: IDMMU_...)
  408.  
  409.                 IDHW_OSVER      -- What OS version is used?
  410.                         (version, revision)
  411.  
  412.                 IDHW_EXECVER    -- What exec version is used?
  413.                         (version, revision)
  414.  
  415.                 IDHW_WBVER      -- What WorkBench version is used?
  416.                         (version, revision; 0 if not available)
  417.  
  418.                 IDHW_ROMSIZE    -- Size of AmigaOS ROM
  419.                         (size in bytes)
  420.  
  421.                 IDHW_CHIPSET    -- What Chipset is available?
  422.                         (include file: IDCS_...)
  423.  
  424.                 IDHW_GFXSYS     -- What Graphic OS is used?
  425.                         (include file: IDGOS_...)
  426.  
  427.                 IDHW_CHIPRAM    -- Size of complete Chip RAM
  428.                         (size in bytes)
  429.  
  430.                 IDHW_FASTRAM    -- Size of complete Fast RAM
  431.                         (size in bytes)
  432.  
  433.                 IDHW_RAM        -- Size of complete System RAM
  434.                         (size in bytes)
  435.  
  436.                 IDHW_SETPATCHVER -- Version of current SetPatch
  437.                         (version, revision; 0 if not available)
  438.  
  439.                 IDHW_AUDIOSYS   -- What Audio OS is used?
  440.                         (include file: IDAOS_...)
  441.  
  442.                 IDHW_OSNR       -- What AmigaOS is used?
  443.                         (include file: IDOS_...)
  444.  
  445.                 IDHW_VMMCHIPRAM -- Size of virtual Chip RAM
  446.                         (size in bytes)
  447.  
  448.                 IDHW_VMMFASTRAM -- Size of virtual Fast RAM
  449.                         (size in bytes)
  450.  
  451.                 IDHW_VMMRAM     -- Size of total virtual RAM
  452.                         (size in bytes)
  453.  
  454.                 IDHW_PLNCHIPRAM -- Size of non-virtual Chip RAM
  455.                         (size in bytes)
  456.  
  457.                 IDHW_PLNFASTRAM -- Size of non-virtual Fast RAM
  458.                         (size in bytes)
  459.  
  460.                 IDHW_PLNRAM     -- Size of total non-virtual RAM
  461.                         (size in bytes)
  462.  
  463.                 IDHW_VBR        -- Vector Base Register contents
  464.                         (address)
  465.  
  466.                 IDHW_LASTALERT  -- Last Alert code
  467.                         (ULONG, 0xFFFFFFFF: no last alert yet)
  468.  
  469.                 IDHW_VBLANKFREQ -- VBlank frequency (see execbase.h)
  470.                         (ULONG, Unit Hertz)
  471.  
  472.                 IDHW_POWERFREQ  -- Power supply frequency (see execbase.h)
  473.                         (ULONG, Unit Hertz)
  474.  
  475.                 IDHW_ECLOCK     -- System E clock frequency
  476.                         (ULONG, Unit Hertz)
  477.  
  478.                 IDHW_SLOWRAM    -- A500/A2000 "Slow" RAM expansion
  479.                         (size in bytes)
  480.  
  481.                 IDHW_GARY       -- GARY revision
  482.                         (include file: IDGRY_...)
  483.  
  484.                 IDHW_RAMSEY     -- RAMSEY revision
  485.                         (include file: IDRSY_...)
  486.  
  487.                 IDHW_BATTCLOCK  -- Battery backed up clock present?
  488.                         (BOOL)
  489.  
  490.                 IDHW_CHUNKYPLANAR -- [V7] Chunky to planar hardware present?
  491.                         (BOOL)
  492.  
  493.                 IDHW_POWERPC    -- [V7] PowerPC CPU present?
  494.                         (include file: IDPPC_...)
  495.  
  496.                 IDHW_PPCCLOCK   -- [V7] PowerPC processor clock
  497.                         (clock in MHz units)
  498.  
  499.         TagList       -- (struct TagItem *) tags that describe further
  500.                          options. Currently, there are none. You may
  501.                          provide NULL.
  502.  
  503.    RESULT
  504.         Result        -- (ULONG) Numerical result containing the desired
  505.                 information.
  506.  
  507.    NOTE
  508.         If you queried a version, you'll find the version in the *lower*
  509.         UWORD (because it is more important) and the revision in the
  510.         *upper* UWORD.
  511.  
  512.         All memory sizes are always in bytes.
  513.  
  514.         Boolean results are ==0 for FALSE, !=0 for TRUE.
  515.  
  516.         If you have to look up the result in the include file, you might
  517.         also get a numerical result that is beyond the maximum value you'll
  518.         find there. Be prepared for it! In this case, just print "not known"
  519.         or anything similar, or use the IdHardware() result.
  520.  
  521.         This call is guaranteed to preserve all registers except D0.
  522.  
  523.    BUGS
  524.         Identify ignores any changes to the base of the upper values
  525.         (e.g. if Virtual Memory is added after startup of identify).
  526.         Workaround: remove identify from memory (e.g. avail flush).
  527.  
  528.    SEE ALSO
  529.         IdHardware()
  530.  
  531.